In [ ]:
with open('input.txt', 'rt') as f:
nums = [int(l.strip()) for l in f.readlines()]
In [ ]:
def compute_fuel(m):
return m // 3 - 2
In [ ]:
# test
list(map(compute_fuel, [12, 14, 1969, 100756]))
In [ ]:
# output part 1
sum(map(compute_fuel, nums))
In [ ]:
def iterative_compute_fuel(m):
res, x = 0, m
while x > 0:
x = compute_fuel(x)
res += max(x, 0)
return res
In [ ]:
# test
list(map(iterative_compute_fuel, [14, 1969, 100756]))
In [ ]:
# output part 2
sum(map(iterative_compute_fuel, nums))